package dao

import (
	"context"
	"github.com/go-redis/redis/v8"
	"test.com/project-user/config"
	"time"
)

var Rc *RedisCache

// RedisCache
//
//	@Description: redis缓存对象, 封装着redis客户端连接
type RedisCache struct {
	rdb *redis.Client
}

// init
//
//	@Description: 初始化Rc: redis客户端
func init() {
	rdb := redis.NewClient(config.C().ReadRedisConfig())
	Rc = &RedisCache{
		rdb: rdb,
	}
}

// Put
//
//	@Description: redis客户端, put方法
//	@receiver rc
//	@param ctx
//	@param key
//	@param value
//	@param expire
//	@return error
func (rc *RedisCache) Put(ctx context.Context, key, value string, expire time.Duration) error {
	err := rc.rdb.Set(ctx, key, value, expire).Err()
	return err
}

// Get
//
//	@Description: redis客户端, get方法
//	@receiver rc
//	@param ctx
//	@param key
//	@return string
//	@return error
func (rc *RedisCache) Get(ctx context.Context, key string) (string, error) {
	result, err := rc.rdb.Get(ctx, key).Result()
	return result, err
}
